
package com.jf.cloud.supplier.mapper;

import com.jf.cloud.supplier.model.SupplierCompany;
import com.jf.cloud.supplier.vo.SupplierCompanyVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 供应商工商信息
 *
 * @author zz
 * @date 2022-03-14 17:04:32
 */
public interface SupplierCompanyMapper {
    /**
     * 根据供应商id获取供应商工商信息
     * @param supplierId
     * @return
     */
    SupplierCompanyVO getSupplierCompanyBySupplierIdAndStatus(@Param("supplierId") Long supplierId, @Param("status") Integer status);

    /**
     * 获取供应商工商信息列表
     * @return 供应商工商信息列表
     */
    List<SupplierCompany> list();

    /**
     * 根据供应商工商信息id获取供应商工商信息
     *
     * @param supplierCompanyId 供应商工商信息id
     * @return 供应商工商信息
     */
    SupplierCompany getBySupplierCompanyId(@Param("supplierCompanyId") Long supplierCompanyId);

    /**
     * 保存供应商工商信息
     * @param supplierCompany 供应商工商信息
     */
    void save(@Param("supplierCompany") SupplierCompany supplierCompany);

    /**
     * 更新供应商工商信息
     * @param supplierCompany 供应商工商信息
     */
    void update(@Param("supplierCompany") SupplierCompany supplierCompany);

    /**
     * 根据供应商工商信息id删除供应商工商信息
     * @param supplierCompanyId
     */
    void deleteById(@Param("supplierCompanyId") Long supplierCompanyId);

    /**
     * 根据供应商id更新供应商工商信息
     * @param supplierCompany
     * @param supplierId
     * @param temp 0代表通过审核，1代表平台修改
     */
    void updateBySupplierId(@Param("supplierCompany") SupplierCompany supplierCompany, @Param("supplierId") Long supplierId, @Param("temp") Integer temp);

    /**
     * 统计企业名称被其他供应商使用的次数
     * @param firmName
     * @param supplierId
     * @return
     */
    int countByFirmNameNonSupplierId(@Param("firmName") String firmName, @Param("supplierId") Long supplierId);

    /**
     * 根据信用编码查询对应的供应商Id
     * @param creditCode
     */
    Long getSupplierIdByCreditCode(@Param("creditCode") String creditCode);

    /**
     * 根据供应商id更改供应商工商信息状态
     * @param supplierId
     * @param status
     */
    void batchUpdateStatus(@Param("supplierId") Long supplierId, @Param("status") Integer status);

    /**
     * 根据供应商id和审核状态删除供应商工商信息
     * @param supplierId
     * @param status 审核状态
     * @return
     */
    void deleteBySupplierIdAndStatus(@Param("supplierId") Long supplierId, @Param("status") Integer status);

    /**
     * 查询供应商最近创建的工商信息 审核状态
     * @param supplierId
     * @return
     */
    Integer getLatestRecord(@Param("supplierId") Long supplierId);

    /**
     * 根据供应商id更新供应商工商信息
     * @param supplierCompany 供应商工商信息
     */
    void updateById(@Param("supplierCompany") SupplierCompany supplierCompany);
}
